home *** CD-ROM | disk | FTP | other *** search
- global gVariable, gCast, gSize, gClonerFlag, gClonerHDist, gClonerVDist, gClonerMask, gClonerSize, myCurrentImage, myCurrentPreview
-
- on tool1PxCloner
- member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
- if sprite(9).blend = 0 then
- alert("Right click to select the source pixel.")
- else
- if gClonerFlag = 1 then
- myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
- myCurrentPreview = duplicate(member("preview", gCast).image)
- repeat while the mouseDown
- sourceColor = myCurrentImage.getPixel(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist)
- if inside(point(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist), member(gSize & "x" & gSize, gCast).rect) then
- myCurrentImage.setPixel((the mouseH - sprite(1).left) * 2 / gVariable / 2, (the mouseV - sprite(1).top) * 2 / gVariable / 2, sourceColor)
- else
- nothing()
- end if
- member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
- sprite(9).loc = point(((the mouseH - sprite(1).left) * 2 / gVariable / 2 * gVariable) + sprite(1).left + (gVariable / 2) + (gClonerHDist * gVariable), ((the mouseV - sprite(1).top) * 2 / gVariable / 2 * gVariable) + sprite(1).top + (gVariable / 2) + (gClonerVDist * gVariable))
- updateStage()
- put (the mouseH - sprite(1).left) * 2 / gVariable / 2 into field "location status X"
- put (the mouseV - sprite(1).top) * 2 / gVariable / 2 into field "location status Y"
- fnUpdatePreview()
- end repeat
- else
- myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
- myCurrentPreview = duplicate(member("preview", gCast).image)
- gClonerFlag = 1
- if sprite(9).locH < the mouseH then
- gClonerHDist = -(((the mouseH - sprite(1).left) * 2 / gVariable / 2) - ((sprite(9).locH - sprite(1).left) * 2 / gVariable / 2))
- else
- if sprite(9).locH >= the mouseH then
- gClonerHDist = ((sprite(9).locH - sprite(1).left) * 2 / gVariable / 2) - ((the mouseH - sprite(1).left) * 2 / gVariable / 2)
- end if
- end if
- if sprite(9).locV < the mouseV then
- gClonerVDist = -(((the mouseV - sprite(1).top) * 2 / gVariable / 2) - ((sprite(9).locV - sprite(1).top) * 2 / gVariable / 2))
- else
- if sprite(9).locV >= the mouseV then
- gClonerVDist = ((sprite(9).locV - sprite(1).top) * 2 / gVariable / 2) - ((the mouseV - sprite(1).top) * 2 / gVariable / 2)
- end if
- end if
- repeat while the mouseDown
- sourceColor = myCurrentImage.getPixel(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist)
- if inside(point(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist), member(gSize & "x" & gSize, gCast).rect) then
- myCurrentImage.setPixel((the mouseH - sprite(1).left) * 2 / gVariable / 2, (the mouseV - sprite(1).top) * 2 / gVariable / 2, sourceColor)
- else
- nothing()
- end if
- member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
- sprite(9).loc = point(((the mouseH - sprite(1).left) * 2 / gVariable / 2 * gVariable) + sprite(1).left + (gVariable / 2) + (gClonerHDist * gVariable), ((the mouseV - sprite(1).top) * 2 / gVariable / 2 * gVariable) + sprite(1).top + (gVariable / 2) + (gClonerVDist * gVariable))
- updateStage()
- put (the mouseH - sprite(1).left) * 2 / gVariable / 2 into field "location status X"
- put (the mouseV - sprite(1).top) * 2 / gVariable / 2 into field "location status Y"
- fnUpdatePreview()
- end repeat
- end if
- end if
- sprite(35).pState = 0
- sendSprite(35, #setMember)
- member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
- myCurrentImage = VOID
- myCurrentPreview = VOID
- put EMPTY into field "location status X"
- put EMPTY into field "location status Y"
- end
-
- on toolCloner
- member("state1 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
- if sprite(9).blend = 0 then
- alert("Right click to select the source pixel.")
- else
- if gClonerFlag = 1 then
- myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
- myBufferImage = duplicate(member(gSize & "x" & gSize, gCast).image)
- myCurrentPreview = duplicate(member("preview", gCast).image)
- repeat while the mouseDown
- sourceArea = rect(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist - 4, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist - 4, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist + 5, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist + 5)
- destinationArea = rect(((the mouseH - sprite(1).left) * 2 / gVariable / 2) - 4, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) - 4, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 5, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 5)
- if inside(point(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist), member(gSize & "x" & gSize, gCast).rect) then
- myCurrentImage.copyPixels(myBufferImage, destinationArea, sourceArea, [#maskImage: member(gClonerMask).image.createMask(), #maskOffset: point(sourceArea.left, sourceArea.top)])
- else
- nothing()
- end if
- member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
- sprite(8).rect = rect(the mouseH - (gClonerSize * gVariable / 2), the mouseV - (gClonerSize * gVariable / 2), the mouseH + (gClonerSize * gVariable / 2), the mouseV + (gClonerSize * gVariable / 2))
- sprite(9).loc = point(((the mouseH - sprite(1).left) * 2 / gVariable / 2 * gVariable) + sprite(1).left + (gVariable / 2) + (gClonerHDist * gVariable), ((the mouseV - sprite(1).top) * 2 / gVariable / 2 * gVariable) + sprite(1).top + (gVariable / 2) + (gClonerVDist * gVariable))
- updateStage()
- put (the mouseH - sprite(1).left) * 2 / gVariable / 2 into field "location status X"
- put (the mouseV - sprite(1).top) * 2 / gVariable / 2 into field "location status Y"
- fnUpdatePreview()
- end repeat
- else
- myCurrentImage = duplicate(member(gSize & "x" & gSize, gCast).image)
- myBufferImage = duplicate(member(gSize & "x" & gSize, gCast).image)
- myCurrentPreview = duplicate(member("preview", gCast).image)
- gClonerFlag = 1
- if sprite(9).locH < the mouseH then
- gClonerHDist = -(((the mouseH - sprite(1).left) * 2 / gVariable / 2) - ((sprite(9).locH - sprite(1).left) * 2 / gVariable / 2))
- else
- if sprite(9).locH >= the mouseH then
- gClonerHDist = ((sprite(9).locH - sprite(1).left) * 2 / gVariable / 2) - ((the mouseH - sprite(1).left) * 2 / gVariable / 2)
- end if
- end if
- if sprite(9).locV < the mouseV then
- gClonerVDist = -(((the mouseV - sprite(1).top) * 2 / gVariable / 2) - ((sprite(9).locV - sprite(1).top) * 2 / gVariable / 2))
- else
- if sprite(9).locV >= the mouseV then
- gClonerVDist = ((sprite(9).locV - sprite(1).top) * 2 / gVariable / 2) - ((the mouseV - sprite(1).top) * 2 / gVariable / 2)
- end if
- end if
- repeat while the mouseDown
- sourceArea = rect(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist - 4, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist - 4, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist + 5, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist + 5)
- destinationArea = rect(((the mouseH - sprite(1).left) * 2 / gVariable / 2) - 4, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) - 4, ((the mouseH - sprite(1).left) * 2 / gVariable / 2) + 5, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + 5)
- if inside(point(((the mouseH - sprite(1).left) * 2 / gVariable / 2) + gClonerHDist, ((the mouseV - sprite(1).top) * 2 / gVariable / 2) + gClonerVDist), member(gSize & "x" & gSize, gCast).rect) then
- myCurrentImage.copyPixels(myBufferImage, destinationArea, sourceArea, [#maskImage: member(gClonerMask).image.createMask(), #maskOffset: point(sourceArea.left, sourceArea.top)])
- else
- nothing()
- end if
- member(gSize & "x" & gSize, gCast).image.copyPixels(myCurrentImage, myCurrentImage.rect, myCurrentImage.rect)
- sprite(8).rect = rect(the mouseH - (gClonerSize * gVariable / 2), the mouseV - (gClonerSize * gVariable / 2), the mouseH + (gClonerSize * gVariable / 2), the mouseV + (gClonerSize * gVariable / 2))
- sprite(9).loc = point(((the mouseH - sprite(1).left) * 2 / gVariable / 2 * gVariable) + sprite(1).left + (gVariable / 2) + (gClonerHDist * gVariable), ((the mouseV - sprite(1).top) * 2 / gVariable / 2 * gVariable) + sprite(1).top + (gVariable / 2) + (gClonerVDist * gVariable))
- updateStage()
- put (the mouseH - sprite(1).left) * 2 / gVariable / 2 into field "location status X"
- put (the mouseV - sprite(1).top) * 2 / gVariable / 2 into field "location status Y"
- fnUpdatePreview()
- end repeat
- end if
- end if
- sprite(35).pState = 0
- sendSprite(35, #setMember)
- member("state2 - " & gSize, gCast).image = member(gSize & "x" & gSize, gCast).image
- myCurrentImage = VOID
- myBufferImage = VOID
- myCurrentPreview = VOID
- put EMPTY into field "location status X"
- put EMPTY into field "location status Y"
- end
-